package com.itheima.extendsdemo;
/*
 *      利用继承优化等于案例
 *                   1.将登录界面封装到一个类里面,只要创建对象即可进行登录界面的实现
 *          继承的好处之一:就是提高代码的复用性
 *
 * */

import javax.swing.*;
import java.awt.*;

//注意类名
public class MyFrameDemo extends JFrame {
    //空参构造,为了创建对象是可以实现窗体,就将代码的逻辑实现在里面
    //外界创建空参对象,就会触发空参里面的代码 ->从而完成窗体的显示
    public MyFrameDemo(){

        //调用方法
        initFrame();
        //调用绘制窗体方法
        drawView();

        //谁知窗体可见,写在最后
        this.setVisible(true);


    }
    //初始化窗体
    public void initFrame(){
        //创建窗体对象
        //JFrame jf = new JFrame();----------->想直接这个类就代表窗体,怎么创建别了类的对象作为窗体,改进,用继承extends
        //设置大小(单位是px像素)
        this.setSize(400, 400);
        //基本设置
        //1.窗体标题
        this.setTitle("登录界面");
        //2.居中显示
        this.setLocationRelativeTo(null);
        //3.窗体关闭停止程序
        this.setDefaultCloseOperation(3);
        //4.设置窗体置顶:为了别的窗体覆盖它
        this.setAlwaysOnTop(true);
        //取消默认布局
        this.setLayout(null);

    }

    //绘制窗体
    public void drawView(){
        //将相应的逻辑写在这里  提高代码的复用性
        //用户名文本
        JLabel usernameJLabel = new JLabel("用户名");
        //设置大小
        usernameJLabel.setBounds(50, 50, 50, 20);
        //添加到窗体中
        this.add(usernameJLabel);

        //密码文本
        JLabel passwordJLabel = new JLabel("密码");
        passwordJLabel.setBounds(50, 100, 50, 20);
        //添加到窗体中
        this.add(passwordJLabel);

        //用户名输入框
        JTextField usernameFile = new JTextField();
        //设置大小
        usernameFile.setBounds(150, 50, 180, 20);
        //将文本框添加到窗体中
        this.add(usernameFile);

        //密码输入框
        JPasswordField passwordField = new JPasswordField();
        //设置大小
        passwordField.setBounds(150, 100, 180, 20);
        //将密码输入框添加到窗体中
        this.add(passwordField);

        //登录按钮
        JButton button = new JButton("登录");
        //设置大小
        button.setBounds(50, 200, 280, 20);
        //将按钮添加到窗体中
        this.add(button);


    }
}
